/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modele;

import ecoute.Ecouteur;
import java.io.Serializable;
import javax.swing.AbstractListModel;

/**
 * Heritage intermediaire.
 * Implementee par Groupe et Modele, car ces 2 classes sont similaires (sont modele d'une JList et ecoutables par la vue).
 * @author Jo
 */
public abstract class AbstractGM extends AbstractListModel implements Serializable, ecoute.Ecoutable {
    
    //Ecoutable
    @Override
    public void addEcouteur(Ecouteur listener) {
        listeners.add(listener);
    }
    
    @Override
    public void removeEcouteur(Ecouteur listener) {
        listeners.remove(listener);
    }
    
    @Override
    public Ecouteur[] getEcouteurs() {
        return listeners.toArray(new Ecouteur[0]);
    }
    
    
    @Override
    public void fireSomethingChanged(int info) {
        for(Ecouteur listener : listeners) {
            listener.actualiserListes(info);
        }
    }
    
}
